package com.gnerv.battle.boot.module.base.business;

import com.gnerv.battle.boot.module.base.model.dto.PermissionCreateDTO;
import com.gnerv.battle.boot.module.base.model.dto.PermissionDTO;
import com.gnerv.battle.boot.module.base.model.dto.PermissionRoleDTO;
import com.gnerv.battle.boot.module.base.model.dto.PermissionUpdateDTO;
import com.gnerv.battle.boot.common.base.model.RestResult;

import java.util.List;

/**
 * @author ligen
 * @description 管理-账户业务操作
 * @createDate 2023-06-08 20:23:32
 */
public interface PermissionBusiness {

    RestResult<Void> create(PermissionCreateDTO permissionCreateDTO);

    RestResult<Void> deleteByUkId(String ukId);

    RestResult<Void> updateByUkId(PermissionUpdateDTO permissionUpdateDTO);

    RestResult<PermissionDTO> selectByUkId(String ukId);

    RestResult<List<PermissionDTO>> listByName(String name, Integer page, Integer size);

    RestResult<List<PermissionDTO>> listByRoleUkId(String roleUkId);

    RestResult<Void> bindRole(PermissionRoleDTO permissionRoleDTO);

    RestResult<Void> unbindRole(String ukId);
}
